<?php
/**
 * Controller_Ajax_Review
 *
 * Класс Controller_Ajax_Review отвечает за обработку AJAX - обращений связанных с отзывами
 *
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 2.0
 */
class Controller_Ajax_User extends Controller_Ajax {
	public function __construct(&$arrRequest) {
		parent::__construct($arrRequest);
		switch ($this->arrRequest[2]) {
		  case 'setUserVariable': // действие - установка переменной пользователя
				$this->getActionSetUserVariable();
				break;
		  case 'get_staff': // действие - установка переменной пользователя
				$this->getStaff();
				break;
		  case 'delete': // Удаление пользователя
		  	$userId = isset($_POST['ID_user']) ? intval($_POST['ID_user']) : 0;
				$this->getActionUserDelete($userId);
				break;
			default: $this->show404Error();
		}
	}

	/**
	 * Метод проверяет и устанавливает значение переменной пользователя в бд
	 *
	 */
	public function getActionSetUserVariable() {
		$userId = User_User::getId();
		$variableName = Service_Function::absolutelyEscapeString($_POST["variableName"]);
		$variableValue = Service_Function::absolutelyEscapeString($_POST["variableValue"]);
		$result = User_Variable::addVariableValue($userId, $variableName, $variableValue);
		$objJSON = new Service_JSON();
		if ($result) $arrResult = array('result' => 'ok', 'error' => '');
		else $arrResult = array('result' => 'error', 'error' => 'This variable does not exist.');
		echo $objJSON->encode($arrResult);
	}

	/**
	 * Метод проверяет и устанавливает значение переменной пользователя в бд
	 *
	 */
	public function getActionUserDelete($userId) {
		$viewerId = User_User::getId();
		$arrReturn = array();
    try {
    	if ($userId && $viewerId) {
    		$objUser = new User_User($userId);
    		$objUser->delete();
  	    $arrReturn['result'] = 'OK';
    	}
    	else {
      	$arrReturn['result'] = '-';
      	$arrReturn['err_text'] = 'This user does not exist.';
    	}
    }
    catch (Exception $ex) {
      $arrReturn['result'] = '-';
      $arrReturn['err_text'] = $ex->getMessage();
    }
		$oJSON = new Service_JSON();
		echo $oJSON->encode($arrReturn);
	}
	
	/**
	 * Действие - таблица списка заказов
	 *
	 */
	public function getStaff() {
    $post = $_POST;
    foreach ($post as $key => $val) {
      $post[$key] = Service_Function::absolutelyEscapeString($post[$key]);
    }
    $companyId = isset($post['ID_company']) ? intval($post['ID_company']) : 0;
    
    $arrUsers = Company::getCompanyStaff($companyId, $post);
	  
	  $oJSON = new Service_JSON();
    $retArray = array();
    $retArray['data'] = View_Company::getStaffTableContent($arrUsers);
    $retArray['result'] = 'OK';
    echo $oJSON->encode($retArray);
  }
}
?>
